package com.qingneng.service.sdk;

import java.util.List;

import com.qingneng.vo.BudgetFeeDoInfo;
import com.qingneng.vo.BudgetItem;
import com.qingneng.vo.BudgetQuantitiesBuildItem;
import com.qingneng.vo.BudgetWorkDoInfo;
import com.qingneng.vo.BudgetWorkQuantities;
import com.qingneng.vo.ProjectWorkInfo;
import com.qingneng.vo.QantitiesBuildItem;

public interface IWorkBudgetService {
	/**
	 * 保存计算后的工程量
	 * @param record
	 */
	public void addWorkQuantities(BudgetWorkQuantities record);
	/**
	 * 删除计算后的工程量
	 * @param record
	 */
	public void destroyWorkQuantities(BudgetWorkQuantities record);
	
	/**
	 * 更新计算后的工程量平均有效
	 * @param record
	 */
	public void updateWorkQuantities(BudgetWorkQuantities record);
	
	/**
	 * 
	 * @param record
	 * @return
	 */
	public List getWorkQuantities(BudgetWorkQuantities record);
	
	
	/**
	 * 获得工程量中建筑类型计算项
	 * @param budgetItem
	 * @return
	 */
	public List getBuildItem(QantitiesBuildItem  bean );
	
	/**
	 * 获得工程量中建筑类型计算项
	 * @param bean
	 */
	public List getBudgetQuantitiesBuildItem (BudgetQuantitiesBuildItem bean);
	/**
	 * 保存工程量中建筑类型计算项
	 * @param bean
	 */
	public void addBudgetQuantitiesBuildItem (BudgetQuantitiesBuildItem bean);

	/**
	 * 获得预算表中的预算项
	 * @param budgetItem
	 * @return
	 */
	public List getBudgetItem(BudgetItem budgetItem);
	
	
	/**
	 * 获得取费项
	 * @param budgetItem
	 * @return
	 */
	public List getFeeItem();
	
	/**
	 * 保存计算后的预算表结果
	 * @param bean
	 */
	public void addBudgetWorkDoInfo(BudgetWorkDoInfo bean);
	
	
	/**
	 * 保存计算后的取费表结果
	 * @param bean
	 */
	public void addBudgetFeeDoInfo(BudgetFeeDoInfo bean);
	
	/**
	 * 获得计算后的取费表结果
	 * @param bean
	 */
	public List getBudgetFeeDoInfo(BudgetFeeDoInfo bean);
	
	
	/**
	 * 更新预算结果结果到工程信息表中
	 * @param bean
	 */
	public void modifyFeeAmount2WorkInfo(ProjectWorkInfo bean);
	
	/**
	 * 删除计算后的取费表结果,根据工程id 删除
	 * @param bean
	 */
	public void destroyBudgetFeeDoInfo(BudgetFeeDoInfo bean);
	
	
	/**
	 * 计算工程量时获得建筑类型
	 * @return
	 */
	public List qetBuildType();
	
	/**
	 * 获得预算表信息
	 */
	public List getWorkDoInfo(BudgetWorkDoInfo bean);
	/**
	 * 删除预算表信息。根据工程id进行删除
	 * @param bean
	 * @return
	 */
	public void destroyBudgetWorkDoInfo(BudgetWorkDoInfo bean);
	/**
	 * 删除预算表信息。根据工程id进行删除
	 * @param bean
	 * @return
	 */
	public void destroySubBudgetWorkDoInfo(BudgetWorkDoInfo bean);
	
	/**
	 * 根据工程ID，预算项父ID，获得预算表信息
	 */
	public List getWorkDoInfoByWorkInfoIdAndItemId(BudgetWorkDoInfo bean);
}
